package database

import (
	"time"

	"go.mongodb.org/mongo-driver/mongo"
)

type FriendInfo struct {
	Friendid uint64 `json:"fid"`
	Markname string `json:"markname"`
	Teamname string `json:"teamname"`
}

// 用户注册表
type UserInfo struct {
	Uid             uint64    `json:"uid"`                                              // 账户id
	UserName        string    `json:"username"`                                         // 用户名
	NickName        string    `json:"nickname,omitempty"`                               // 昵称
	Password        string    `json:"password"`                                         // 密码
	FaceType        uint8     `json:"facetype"`                                         // 用户头像类型
	CustomFace      string    `json:"customface"`                                       // 自定义头像名
	CustomFaceFmt   uint8     `json:"customfacefmt"`                                    // 自定义头像格式
	Gender          uint8     `json:"gender"`                                           // 性别
	Age             uint8     `json:"age,omitempty"`                                    // 年龄
	Height          uint8     `json:"height,omitempty"`                                 // 身高: cm
	Birthday        time.Time `json:"birthday,omitempty" bson:"birthday,omitempty"`     // 生日
	Signature       string    `json:"signature,omitempty"`                              // 个性签名
	Address         string    `json:"address,omitempty"`                                // 住址
	TelephoneNumber string    `json:"telephonenumber,omitempty"`                        // 电话号码
	Mail            string    `json:"mail,omitempty"`                                   // 邮箱号码
	RegisterTime    time.Time `json:"registertime,omitempty"`                           // 用户注册时间
	Remark          string    `json:"remark,omitempty`                                  // 备注信息
	UpdateTime      time.Time `json:"updatetime,omitempty" bson:"updatetime,omitempty"` // 用户注册信息更新时间

	Teaminfo string        `json:"teaminfo,omitempty"` // 好友分组信息
	Friends  []*FriendInfo `json:"friends,omitempty"`  // 好友列表

	OwnerGids []uint64 `json:"gids,omitempty"`     // 创建的群的gid
	JoinGids  []uint64 `json:"joingids,omitempty"` // 加入的群的gid
}

func (u *UserInfo) GetCollecton() (*mongo.Collection, error) {
	return GetCollecton(TBLNAME_USER)
}

func (u *UserInfo) GetTableName() string {
	return TBLNAME_USER
}
